import java.util.Collections;
import java.util.Scanner;
import java.util.Arrays;
public class Main {
    /*给你一个长度为 n 的数组 happiness ，以及一个 正整数 k 。
    n 个孩子站成一队，其中第 i 个孩子的 幸福值 是 happiness[i]
            。你计划组织 k 轮筛选从这 n 个孩子中选出 k 个孩子。
    在每一轮选择一个孩子时，所有 尚未 被选中的孩子的 幸福值 将减少 1 。注意，
    幸福值 不能 变成负数，且只有在它是正数的情况下才会减少。
    选择 k 个孩子，并使你选中的孩子幸福值之和最大，返回你能够得到的 最大值 。*/
    public static int check(int[] nums,int k) {
        Arrays.sort(nums);
        //降序
        reverse(nums);
        int result=0;
        for(int i=0;i<k;i++){
            result+=Math.max(nums[i]-i,0);
        }
        return result;
    }
    public static void reverse(int[] nums){
        int i=0;
        int j=nums.length-1;
        while(i<j){
            int temp=nums[i];
            nums[i]=nums[j];
            nums[j]=temp;
            i++;
            j--;
        }
    }
    public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          int n=sc.nextInt();
          int[] nums=new int[n];
          for(int i=0;i<n;i++){
              nums[i]=sc.nextInt();
          }
          int k=sc.nextInt();
          int result=check(nums,k);
          System.out.println(result);
    }
}